iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0
自我挑戰組

30天菜鳥學 Linux 系列 第 27

27天-了解指令串接概念

  • 分享至 

  • xImage
  •  

今天學習 鳥哥的 Linux 私房菜 -- 第 8 堂課:bash 指令連續下達與資料流重導向


使用 which 查詢指令

test@test:~$ which ifconfig
/usr/sbin/ifconfig
test@test:~$ which chfn
/usr/bin/chfn

鳥哥 :

指令是可以連續輸入的,直接透過分號 (;) 隔開每個指令即可..指令間不必有一定程度的相依性

像是我最常用的新增目錄馬上進去目錄

test@test:~$ mkdir demo; cd demo;
test@test:~/demo$ 

甚至可以將所有命令輸出在同一個檔案,使用 ( 命令 ) > 輸出檔案

test@test:~$ (date;uptime;uname -r) > test.txt
test@test:~$ cat test.txt
Wed 30 Sep 2020 12:02:01 PM UTC
 12:02:01 up 1 day, 13:46,  2 users,  load average: 0.00, 0.00, 0.00
5.4.0-47-generic

另外 &&||可以有邏輯的判斷

鳥哥 :

  • command1 && command2
    當 command1 執行回傳為 0 時(成功),command2 才會執行,否則就不執行。
  • command1 || command2
    當 command1 執行回傳為非 0 時(失敗),command2 才會執行,否則就不執行。

像是 : 檢查目錄存不存在,假如不存在才建立用||

test@test:~$ ls -d demo2 || mkdir demo2
ls: cannot access 'demo2': No such file or directory
test@test:~$ ls
demo2
test@test:~$ ls -d demo3 && mkdir demo3
ls: cannot access 'demo3': No such file or directory
test@test:~$ ls
demo2

判斷某個檔案是否存在+說明,可以這樣處理 :

test@test:~$ ls -d demo && echo exist || echo non-exist
ls: cannot access 'demo': No such file or directory
non-exist
test@test:~$ mkdir demo
test@test:~$ ls -d demo && echo exist || echo non-exist
demo
exist

不想要無關指令結果也顯示,可以使用 &>

test@test:~$ ls -d demo &> null && echo exist || echo non-exist
non-exist
test@test:~$ mkdir demo
test@test:~$ ls -d demo &> null && echo exist || echo non-exist
exist

上一篇
26天-學會批量建立內容 + Bzip2 壓縮
下一篇
28天-學習資料流重導向、串接
系列文
30天菜鳥學 Linux 59
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言